package com.neu.carbon.mes.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.neu.common.annotation.Excel;
import com.neu.common.core.domain.BaseEntity;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

/**
 * 生产完工单对象 mes_product_finish
 *
 * @author neuedu
 * @date 2025-03-10
 */
@ApiModel("生产完工单")
public class MesProductFinish extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 编号 */
    @ApiModelProperty("编号")
    @Excel(name = "编号")
    private Long id;

    /** 生产完工单号 */
    @ApiModelProperty("生产完工单号")
    @Excel(name = "生产完工单号")
    private String serialNo;

    /** 生产计划编号 */
    @ApiModelProperty("生产计划编号")
    @Excel(name = "生产计划编号")
    private Long planId;

    /** 生产计划 */
    @ApiModelProperty("生产计划")
    @Excel(name = "生产计划")
    private String plan;

    /** 计划排产编号 */
    @ApiModelProperty("计划排产编号")
    private Long scheduleId;

    /** 生产作业编号 */
    @ApiModelProperty("生产作业编号")
    @Excel(name = "生产作业编号")
    private Long jobId;

    /** 生产作业 */
    @ApiModelProperty("生产作业")
    @Excel(name = "生产作业")
    private String job;

    /** 产品id */
    @ApiModelProperty("产品id")
    @Excel(name = "产品id")
    private Long materialId;

    /** 产品 */
    @ApiModelProperty("产品")
    @Excel(name = "产品")
    private String material;

    /** 型号 */
    @ApiModelProperty("型号")
    @Excel(name = "型号")
    private String model;

    /** 规格 */
    @ApiModelProperty("规格")
    @Excel(name = "规格")
    private String specification;

    /** 单位 */
    @ApiModelProperty("单位")
    @Excel(name = "单位")
    private String unit;

    /** 完工日期 */
    @ApiModelProperty(value="完工日期",example = "2021-09-10")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "完工日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date finishDate;

    /** 生产数量 */
    @ApiModelProperty("生产数量")
    @Excel(name = "生产数量")
    private Long finishQuantity;

    /** 生产批号 */
    @ApiModelProperty("生产批号")
    @Excel(name = "生产批号")
    private String batchNo;

    /** 状态 */
    @ApiModelProperty("状态")
    @Excel(name = "状态")
    private String status;

    public String getPlan() {
        return plan;
    }

    public void setPlan(String plan) {
        this.plan = plan;
    }

    public String getJob() {
        return job;
    }

    public void setJob(String job) {
        this.job = job;
    }

    public String getMaterial() {
        return material;
    }

    public void setMaterial(String material) {
        this.material = material;
    }

    public String getModel() {
        return model;
    }

    public void setModel(String model) {
        this.model = model;
    }

    public String getSpecification() {
        return specification;
    }

    public void setSpecification(String specification) {
        this.specification = specification;
    }

    public String getUnit() {
        return unit;
    }

    public void setUnit(String unit) {
        this.unit = unit;
    }

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }
    public void setSerialNo(String serialNo)
    {
        this.serialNo = serialNo;
    }

    public String getSerialNo()
    {
        return serialNo;
    }
    public void setPlanId(Long planId)
    {
        this.planId = planId;
    }

    public Long getPlanId()
    {
        return planId;
    }
    public void setScheduleId(Long scheduleId)
    {
        this.scheduleId = scheduleId;
    }

    public Long getScheduleId()
    {
        return scheduleId;
    }
    public void setJobId(Long jobId)
    {
        this.jobId = jobId;
    }

    public Long getJobId()
    {
        return jobId;
    }
    public void setMaterialId(Long materialId)
    {
        this.materialId = materialId;
    }

    public Long getMaterialId()
    {
        return materialId;
    }
    public void setFinishDate(Date finishDate)
    {
        this.finishDate = finishDate;
    }

    public Date getFinishDate()
    {
        return finishDate;
    }
    public void setFinishQuantity(Long finishQuantity)
    {
        this.finishQuantity = finishQuantity;
    }

    public Long getFinishQuantity()
    {
        return finishQuantity;
    }
    public void setBatchNo(String batchNo)
    {
        this.batchNo = batchNo;
    }

    public String getBatchNo()
    {
        return batchNo;
    }
    public void setStatus(String status)
    {
        this.status = status;
    }

    public String getStatus()
    {
        return status;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("serialNo", getSerialNo())
            .append("planId", getPlanId())
            .append("scheduleId", getScheduleId())
            .append("jobId", getJobId())
            .append("materialId", getMaterialId())
            .append("finishDate", getFinishDate())
            .append("finishQuantity", getFinishQuantity())
            .append("batchNo", getBatchNo())
            .append("status", getStatus())
            .append("remark", getRemark())
            .toString();
    }
}
